#include <stdio.h>
#include<unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>

int main()
{
    pid_t id = fork();
    if(id == 0)
    {
        //子进程
        int cnt = 5;
        while(cnt)
        {
            printf("我是子进程:%d,父进程:%d,cnt:%d\n",getpid(),getppid(),cnt--);
            sleep(1);
        }
        //退出子进程
        exit(10);
    }
    //父进程,子进程到此处前就已经exit退出了
    //sleep(10);
    //pit_t ret = wait(NULL);
    int status;//status不是被整体使用,低7为表示终止信号,8~15位表示退出状态(退出码)
    pid_t ret = waitpid(id,&status,0);
    if(id > 0)
    {
        printf("wait success:%d,sing_number:%d,child_exit_code:%d\n",ret,(status & 0x7F),(status>>8)&0xFF);
    }
    return 0;
}
